/*
 * Copyright 2018 JDCLOUD.COM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * OpenAPI spec version: 1.0
 * 
 *
 * NOTE: This class is auto generated by the jdcloud code generator program.
 */

package net.jdcloud.HufuDatacubeService.model.companypost;

import com.jdcloud.sdk.apim.annotation.*;
import java.util.Objects;
import java.util.Arrays;
import java.io.Serializable;
import java.io.IOException;
import javax.xml.bind.annotation.*;
import com.google.gson.annotations.SerializedName;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;

/**
 * CompanyPOSTBody
 */
@XmlRootElement(name = "companyPOSTBody")
@XmlAccessorType(XmlAccessType.FIELD)

public class CompanyPOSTBody implements Serializable {

    private static final long serialVersionUID = 1L;

    @XmlElement(name = "city_name")
    @SerializedName("city_name")
    private String cityName = null;

    @XmlElement(name = "major_item_first_cate_name")
    @SerializedName("major_item_first_cate_name")
    private String majorItemFirstCateName = null;

    @XmlElement(name = "order_clause")
    @SerializedName("order_clause")
    private String orderClause = null;

    @XmlElement(name = "result_attr")
    @SerializedName("result_attr")
    private String resultAttr = null;

    @XmlElement(name = "page")
    @SerializedName("page")
    private String page = null;

    @XmlElement(name = "county_name")
    @SerializedName("county_name")
    private String countyName = null;

    @XmlElement(name = "shop_name")
    @SerializedName("shop_name")
    private String shopName = null;

    @XmlElement(name = "main_province_name")
    @SerializedName("main_province_name")
    private String mainProvinceName = null;

    @XmlElement(name = "province_name")
    @SerializedName("province_name")
    private String provinceName = null;

    @XmlElement(name = "page_size")
    @SerializedName("page_size")
    private String pageSize = null;

    public CompanyPOSTBody cityName(String cityName) {
        this.cityName = cityName;
        return this;
    }

    /**
     * 市名称
     * @return cityName
    **/

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public CompanyPOSTBody majorItemFirstCateName(String majorItemFirstCateName) {
        this.majorItemFirstCateName = majorItemFirstCateName;
        return this;
    }

    /**
     * 主营品类
     * @return majorItemFirstCateName
    **/

    public String getMajorItemFirstCateName() {
        return majorItemFirstCateName;
    }

    public void setMajorItemFirstCateName(String majorItemFirstCateName) {
        this.majorItemFirstCateName = majorItemFirstCateName;
    }

    public CompanyPOSTBody orderClause(String orderClause) {
        this.orderClause = orderClause;
        return this;
    }

    /**
     * 排序条件
     * @return orderClause
    **/

    public String getOrderClause() {
        return orderClause;
    }

    public void setOrderClause(String orderClause) {
        this.orderClause = orderClause;
    }

    public CompanyPOSTBody resultAttr(String resultAttr) {
        this.resultAttr = resultAttr;
        return this;
    }

    /**
     * 返回属性
     * @return resultAttr
    **/

    public String getResultAttr() {
        return resultAttr;
    }

    public void setResultAttr(String resultAttr) {
        this.resultAttr = resultAttr;
    }

    public CompanyPOSTBody page(String page) {
        this.page = page;
        return this;
    }

    /**
     * 页数
     * @return page
    **/

    public String getPage() {
        return page;
    }

    public void setPage(String page) {
        this.page = page;
    }

    public CompanyPOSTBody countyName(String countyName) {
        this.countyName = countyName;
        return this;
    }

    /**
     * 区县名称
     * @return countyName
    **/

    public String getCountyName() {
        return countyName;
    }

    public void setCountyName(String countyName) {
        this.countyName = countyName;
    }

    public CompanyPOSTBody shopName(String shopName) {
        this.shopName = shopName;
        return this;
    }

    /**
     * 商家名称
     * @return shopName
    **/

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public CompanyPOSTBody mainProvinceName(String mainProvinceName) {
        this.mainProvinceName = mainProvinceName;
        return this;
    }

    /**
     * 主查询省名称
     * @return mainProvinceName
    **/

    public String getMainProvinceName() {
        return mainProvinceName;
    }

    public void setMainProvinceName(String mainProvinceName) {
        this.mainProvinceName = mainProvinceName;
    }

    public CompanyPOSTBody provinceName(String provinceName) {
        this.provinceName = provinceName;
        return this;
    }

    /**
     * 省名称
     * @return provinceName
    **/

    public String getProvinceName() {
        return provinceName;
    }

    public void setProvinceName(String provinceName) {
        this.provinceName = provinceName;
    }

    public CompanyPOSTBody pageSize(String pageSize) {
        this.pageSize = pageSize;
        return this;
    }

    /**
     * 数量
     * @return pageSize
    **/

    public String getPageSize() {
        return pageSize;
    }

    public void setPageSize(String pageSize) {
        this.pageSize = pageSize;
    }


    @Override
    public boolean equals(java.lang.Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        CompanyPOSTBody companyPOSTBody = (CompanyPOSTBody) o;
        return Objects.equals(this.cityName, companyPOSTBody.cityName) &&
        Objects.equals(this.majorItemFirstCateName, companyPOSTBody.majorItemFirstCateName) &&
        Objects.equals(this.orderClause, companyPOSTBody.orderClause) &&
        Objects.equals(this.resultAttr, companyPOSTBody.resultAttr) &&
        Objects.equals(this.page, companyPOSTBody.page) &&
        Objects.equals(this.countyName, companyPOSTBody.countyName) &&
        Objects.equals(this.shopName, companyPOSTBody.shopName) &&
        Objects.equals(this.mainProvinceName, companyPOSTBody.mainProvinceName) &&
        Objects.equals(this.provinceName, companyPOSTBody.provinceName) &&
        Objects.equals(this.pageSize, companyPOSTBody.pageSize);
    }

    @Override
    public int hashCode() {
        return Objects.hash(cityName, majorItemFirstCateName, orderClause, resultAttr, page, countyName, shopName, mainProvinceName, provinceName, pageSize);
    }


    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("class CompanyPOSTBody {\n");
        
        sb.append("    cityName: ").append(toIndentedString(cityName)).append("\n");
        sb.append("    majorItemFirstCateName: ").append(toIndentedString(majorItemFirstCateName)).append("\n");
        sb.append("    orderClause: ").append(toIndentedString(orderClause)).append("\n");
        sb.append("    resultAttr: ").append(toIndentedString(resultAttr)).append("\n");
        sb.append("    page: ").append(toIndentedString(page)).append("\n");
        sb.append("    countyName: ").append(toIndentedString(countyName)).append("\n");
        sb.append("    shopName: ").append(toIndentedString(shopName)).append("\n");
        sb.append("    mainProvinceName: ").append(toIndentedString(mainProvinceName)).append("\n");
        sb.append("    provinceName: ").append(toIndentedString(provinceName)).append("\n");
        sb.append("    pageSize: ").append(toIndentedString(pageSize)).append("\n");
        sb.append("}");
        return sb.toString();
    }

    /**
     * Convert the given object to string with each line indented by 4 spaces
     * (except the first line).
     */
    private String toIndentedString(java.lang.Object o) {
        if (o == null) {
          return "null";
        }
        return o.toString().replace("\n", "\n    ");
    }

}

